package space.misiro.ledgers.middleware.api.domain

/**
 * 系统常量定义对象，包含与权限作用域相关的常量配置
 *
 * 本对象定义了系统中使用的OAuth2作用域常量及组合，用于接口访问权限控制
 */
object Constants {
    /**
     * 强客户认证作用域标识
     *
     * 适用于需要强客户身份验证的敏感操作场景
     */
    const val SCOPE_SCA: String = "sca"

    /**
     * 部分访问权限作用域标识
     *
     * 授予对系统资源受限的只读或部分写权限
     */
    const val SCOPE_PARTIAL_ACCESS: String = "partial_access"

    /**
     * 完全访问权限作用域标识
     *
     * 授予对系统所有资源的完全控制权限，包含读写和管理操作
     */
    const val SCOPE_FULL_ACCESS: String = "full_access"

    /**
     * 系统支持的全部作用域集合
     *
     * 该列表包含[SCOPE_SCA]、[SCOPE_PARTIAL_ACCESS]和[SCOPE_FULL_ACCESS]三个作用域常量，
     * 用于权限验证时校验请求作用域的合法性
     */
    val ALL_SCOPES: List<String> = listOf(SCOPE_SCA, SCOPE_PARTIAL_ACCESS, SCOPE_FULL_ACCESS)
}
